package tests;

import junit.framework.TestCase;
import modelo.*;
import modelo.metodoDeDisparo.*;
import modelo.proyectil.*;
import modelo.tanque.*;

public class TestDisparos extends TestCase{
	
	public void testDisparo(){
		
		//elimino Contenedor para que los tests anteriores no afecten, por ser singleton
	    Contenedor.getInstance().eliminarContenedor();
	    
		//Chequeo del tipo de disparo de AlgoTank al cambiarle su armamiento
		Posicion p = new Posicion(30,60);
		AlgoTank algoTank = new AlgoTank(p);
		assertTrue(algoTank.disparar().getClass()== Bala.class);
		algoTank.cambiarArmamento(new Canion(algoTank.getMaxCaniones()));
		assertTrue(algoTank.disparar().getClass()== BalaCanion.class);
		algoTank.cambiarArmamento(new LanzaCohete(algoTank.getMaxCohetes()));
		assertTrue(algoTank.disparar().getClass()== Cohete.class);
		
		//Chequeo del tipo de disparo de GrizzlyBattleTank
		GrizzlyBattleTank GBTank = new GrizzlyBattleTank(p);
		assertTrue(GBTank.disparar().getClass()== Bala.class);
		
		//Chequeo del tipo de disparo de IFV
		IFV ifv = new IFV(p);
		assertTrue(ifv.disparar().getClass()== BalaCanion.class);
		
		//Chequeo del tipo de disparo de MirageTank
		MirageTank mirageTank = new MirageTank(p);
		assertTrue(mirageTank.disparar().getClass()== Cohete.class);
	}
}
